package be.dch.objectprops;

import java.util.Properties;

import be.dch.objectprops.impl.ObjectReader;
import be.dch.objectprops.impl.ObjectWriter;

import com.google.inject.Inject;

public interface ObjectPropertiesStore {

    public abstract Properties getDatabase();

    public abstract void clear();

    public abstract void clean(final String prefix);

    public abstract boolean containsObjectAt(final String prefix);

    public abstract Object readObject(final Class<?> clazz);

    public abstract Object readObject(final Class<?> clazz, final String prefixInput);

    public abstract void writeObject(final Object object);

    public abstract void writeObject(final Object object, final String keyprefix);

    @Inject
    public abstract void setReader(ObjectReader reader);

    @Inject
    public abstract void setWriter(ObjectWriter writer);

}